package com.charley.icloud.common.response.code;

/**
 * Constants enumerating the HTTP status codes.
 * All status codes defined in RFC1945 (HTTP/1.0), RFC2616 (HTTP/1.1), and
 * RFC2518 (WebDAV) are listed.
 *
 *     {@link org.springframework.http.HttpStatus}
 *
 * @since 4.0
 */
public interface HttpStatus {

    // --- 1xx Informational ---

    /** {@code 100 Continue} (HTTP/1.1 - RFC 2616) */
    String SC_CONTINUE = "100";
    /** {@code 101 Switching Protocols} (HTTP/1.1 - RFC 2616)*/
    String SC_SWITCHING_PROTOCOLS = "101";
    /** {@code 102 Processing} (WebDAV - RFC 2518) */
    String SC_PROCESSING = "102";

    // --- 2xx Success ---

    /** {@code 200 OK} (HTTP/1.0 - RFC 1945) */
    String SC_OK = "200";
    String SC_OK_MSG = "请求成功";
    /** {@code 201 Created} (HTTP/1.0 - RFC 1945) */
    String SC_CREATED = "201";
    /** {@code 202 Accepted} (HTTP/1.0 - RFC 1945) */
    String SC_ACCEPTED = "202";
    /** {@code 203 Non Authoritative Information} (HTTP/1.1 - RFC 2616) */
    String SC_NON_AUTHORITATIVE_INFORMATION = "203";
    /** {@code 204 No Content} (HTTP/1.0 - RFC 1945) */
    String SC_NO_CONTENT = "204";
    /** {@code 205 Reset Content} (HTTP/1.1 - RFC 2616) */
    String SC_RESET_CONTENT = "205";
    /** {@code 206 Partial Content} (HTTP/1.1 - RFC 2616) */
    String SC_PARTIAL_CONTENT = "206";
    /**
     * {@code 207 Multi-Status} (WebDAV - RFC 2518)
     * or
     * {@code 207 Partial Update OK} (HTTP/1.1 - draft-ietf-http-v11-spec-rev-01?)
     */
    String SC_MULTI_STATUS = "207";

    // --- 3xx Redirection ---

    /** {@code 300 Multiple  Choices} (HTTP/1.1 - RFC 2616) */
    String SC_MULTIPLE_CHOICES = "300";
    /** {@code 301 Moved Permanently} (HTTP/1.0 - RFC 1945) */
    String SC_MOVED_PERMANENTLY = "301";
    /** {@code 302 Moved Temporarily} (Sometimes {@code Found}) (HTTP/1.0 - RFC 1945) */
    String SC_MOVED_TEMPORARILY = "302";
    /** {@code 303 See Other} (HTTP/1.1 - RFC 2616) */
    String SC_SEE_OTHER = "303";
    /** {@code 304 Not Modified} (HTTP/1.0 - RFC 1945) */
    String SC_NOT_MODIFIED = "304";
    /** {@code 305 Use Proxy} (HTTP/1.1 - RFC 2616) */
    String SC_USE_PROXY = "305";
    /** {@code 307 Temporary Redirect} (HTTP/1.1 - RFC 2616) */
    String SC_TEMPORARY_REDIRECT = "307";

    // --- 4xx Client Error ---

    /** {@code 400 Bad Request} (HTTP/1.1 - RFC 2616) */
    String SC_BAD_REQUEST = "400";
    String SC_BAD_REQUEST_MSG = "请求失败";
    /** {@code 401 Unauthorized} (HTTP/1.0 - RFC 1945) */
    String SC_UNAUTHORIZED = "401";
    String SC_UNAUTHORIZED_MSG = "没有权限";
    /** {@code 402 Payment Required} (HTTP/1.1 - RFC 2616) */
    String SC_PAYMENT_REQUIRED = "402";
    String SC_PAYMENT_REQUIRED_MSG = "数据推送中";
    /** {@code 403 Forbidden} (HTTP/1.0 - RFC 1945) */
    String SC_FORBIDDEN = "403";
    /** {@code 404 Not Found} (HTTP/1.0 - RFC 1945) */
    String SC_NOT_FOUND = "404";
    /** {@code 405 Method Not Allowed} (HTTP/1.1 - RFC 2616) */
    String SC_METHOD_NOT_ALLOWED = "405";
    /** {@code 406 Not Acceptable} (HTTP/1.1 - RFC 2616) */
    String SC_NOT_ACCEPTABLE = "406";
    /** {@code 407 Proxy Authentication Required} (HTTP/1.1 - RFC 2616)*/
    String SC_PROXY_AUTHENTICATION_REQUIRED = "407";
    /** {@code 408 Request Timeout} (HTTP/1.1 - RFC 2616) */
    String SC_REQUEST_TIMEOUT = "408";
    /** {@code 409 Conflict} (HTTP/1.1 - RFC 2616) */
    String SC_CONFLICT = "409";
    /** {@code 410 Gone} (HTTP/1.1 - RFC 2616) */
    String SC_GONE = "410";
    /** {@code 411 Length Required} (HTTP/1.1 - RFC 2616) */
    String SC_LENGTH_REQUIRED = "411";
    /** {@code 412 Precondition Failed} (HTTP/1.1 - RFC 2616) */
    String SC_PRECONDITION_FAILED = "412";
    /** {@code 413 Request Entity Too Large} (HTTP/1.1 - RFC 2616) */
    String SC_REQUEST_TOO_LONG = "413";
    /** {@code 414 Request-URI Too Long} (HTTP/1.1 - RFC 2616) */
    String SC_REQUEST_URI_TOO_LONG = "414";
    /** {@code 415 Unsupported Media Type} (HTTP/1.1 - RFC 2616) */
    String SC_UNSUPPORTED_MEDIA_TYPE = "415";
    /** {@code 416 Requested Range Not Satisfiable} (HTTP/1.1 - RFC 2616) */
    String SC_REQUESTED_RANGE_NOT_SATISFIABLE = "416";
    /** {@code 417 Expectation Failed} (HTTP/1.1 - RFC 2616) */
    String SC_EXPECTATION_FAILED = "417";

    /**
     * Static constant for a 418 error.
     * {@code 418 Unprocessable Entity} (WebDAV drafts?)
     * or {@code 418 Reauthentication Required} (HTTP/1.1 drafts?)
     */
    // not used
    // public static final int SC_UNPROCESSABLE_ENTITY = 418;

    /**
     * Static constant for a 419 error.
     * {@code 419 Insufficient Space on Resource}
     * (WebDAV - draft-ietf-webdav-protocol-05?)
     * or {@code 419 Proxy Reauthentication Required}
     * (HTTP/1.1 drafts?)
     */
    String SC_INSUFFICIENT_SPACE_ON_RESOURCE = "419";
    /**
     * Static constant for a 420 error.
     * {@code 420 Method Failure}
     * (WebDAV - draft-ietf-webdav-protocol-05?)
     */
    String SC_METHOD_FAILURE = "420";
    /** {@code 422 Unprocessable Entity} (WebDAV - RFC 2518) */
    String SC_UNPROCESSABLE_ENTITY = "422";
    /** {@code 423 Locked} (WebDAV - RFC 2518) */
    String SC_LOCKED = "423";
    /** {@code 424 Failed Dependency} (WebDAV - RFC 2518) */
    String SC_FAILED_DEPENDENCY = "424";

    // --- 5xx Server Error ---

    /** {@code 500 Server Error} (HTTP/1.0 - RFC 1945) */
    String SC_INTERNAL_SERVER_ERROR = "500";
    String SC_INTERNAL_SERVER_ERROR_MSG = "未知异常，请联系管理员";
    /** {@code 501 Not Implemented} (HTTP/1.0 - RFC 1945) */
    String SC_NOT_IMPLEMENTED = "501";
    /** {@code 502 Bad Gateway} (HTTP/1.0 - RFC 1945) */
    String SC_BAD_GATEWAY = "502";
    /** {@code 503 Service Unavailable} (HTTP/1.0 - RFC 1945) */
    String SC_SERVICE_UNAVAILABLE = "503";
    /** {@code 504 Gateway Timeout} (HTTP/1.1 - RFC 2616) */
    String SC_GATEWAY_TIMEOUT = "504";
    /** {@code 505 HTTP Version Not Supported} (HTTP/1.1 - RFC 2616) */
    String SC_HTTP_VERSION_NOT_SUPPORTED = "505";

    /** {@code 507 Insufficient Storage} (WebDAV - RFC 2518) */
    String SC_INSUFFICIENT_STORAGE = "507";

}
